golang type switch